A compiler enables development of computer programs that are machine-independent. The compiler is configured to translate a computer program (source code) written in a machine-independent higher level language (e.g., C, COBOL, or BASIC, etc.) into a machine-dependent language or code to be executed on different computer hardware architecture. In other words, a compiler translates a high-level source program into a target program written in a machine language for specific computer hardware. Once a target program is generated for the specific computer hardware, a user can execute the target program on the specific computer hardware. The machine-dependent language often has a binary form known as object code.
In some technologies (e.g., in-memory databases) in which programs are created dynamically during execution, a Just in Time (JIT) compiler can be used. A JIT compiler can translate the source code of a computer program (written, for example, in Llang) in to machine code during runtime. However, actual execution of the computer program may be delayed in runtime by time it takes the compiler to translate the source code of the computer program in to executable machine code (“compile time”).
The compile time for a computer program/source code can depend on the number and the sizes of programming functions (“functions”) used in the source code. In particular, the time to compile (or compile time) can have a non-linear dependence on the sizes of the programming functions. A large size programming function (e.g., such as generated by automatic source code generators) can dramatically increase compile time compared to a small size programming function (e.g., such as in human-written source code).
Consideration is now being given to compiler configurations and methods in view of the compile times for computer programs/source code. In particular, attention is directed to mitigating or managing the effect of programming functions in source code on the compile times.